package br.com.datasun.biblioteca.ui;

import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.SwingConstants;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import javax.swing.JButton;

import br.com.datasun.biblioteca.ui.controller.TelaBiblioteca;
import br.com.datasun.biblioteca.ui.controller.UIController;
import images.ImageLoader; 

public class MenuCentralUI extends JPanel {
	private JLabel jlTitulo = new JLabel("Seja bem vindo ao Sistema de Gest\u00E3o de Bibliotecas");
	
	private JButton jbEmprestimos = new JButton("");
	private JButton jbDevolucoes = new JButton("");
	private JButton jbConsultarClientes = new JButton("");
	private JButton jbCadastrarLivro = new JButton("");
	private JButton jbConsultarLivro = new JButton("");
	private JButton jbCadastrarClientes = new JButton("");

	//Contralodor de telas
		private UIController uiController;
	/**
	 * Create the panel.
	 */
	public MenuCentralUI() {
		setLayout(new BorderLayout(0, 0));
		
		
		jlTitulo.setHorizontalAlignment(SwingConstants.CENTER);
		jlTitulo.setVerticalAlignment(SwingConstants.BOTTOM);
		jlTitulo.setFont(new Font("Tahoma", Font.BOLD, 12));
		jlTitulo.setPreferredSize(new Dimension(40,60));
		add(jlTitulo, BorderLayout.NORTH);
		
		JPanel jpCentro = new JPanel();
		add(jpCentro, BorderLayout.CENTER);
		GridBagLayout gbl_jpCentro = new GridBagLayout();
		gbl_jpCentro.columnWidths = new int[]{0, 500, 0, 0};
		gbl_jpCentro.rowHeights = new int[]{0, 310, 0, 0};
		gbl_jpCentro.columnWeights = new double[]{1.0, 0.0, 1.0, Double.MIN_VALUE};
		gbl_jpCentro.rowWeights = new double[]{1.0, 0.0, 1.0, Double.MIN_VALUE};
		jpCentro.setLayout(gbl_jpCentro);
		
		JPanel jpBotoes = new JPanel();
		GridBagConstraints gbc_jpBotoes = new GridBagConstraints();
		gbc_jpBotoes.insets = new Insets(0, 0, 5, 5);
		gbc_jpBotoes.fill = GridBagConstraints.BOTH;
		gbc_jpBotoes.gridx = 1;
		gbc_jpBotoes.gridy = 1;
		jpCentro.add(jpBotoes, gbc_jpBotoes);
		jpBotoes.setLayout(new GridLayout(2, 3, 20, 20));
		
		Dimension tamanhoBotoes = new Dimension(145,145);
		jbEmprestimos.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				UIController.mudarTela(TelaBiblioteca.EMPRESTIMO_EXEMPLAR_UI);
			}
		});
		
		jbEmprestimos.setPreferredSize(tamanhoBotoes);
		jbDevolucoes.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				DevolucaoExemplarUI devolucaoExemplarUI = new DevolucaoExemplarUI();
				devolucaoExemplarUI.setModal(true);
				devolucaoExemplarUI.setLocationRelativeTo(instanciaMenu());
				devolucaoExemplarUI.setVisible(true);
			}
		});
		jbDevolucoes.setPreferredSize(tamanhoBotoes);
		jbConsultarClientes.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				ConsultaClientesUI consultaClientesUI = new ConsultaClientesUI();
				consultaClientesUI.setModal(true);
				consultaClientesUI.setLocationRelativeTo(instanciaMenu());
				consultaClientesUI.setVisible(true);
			}
		});
		jbConsultarClientes.setPreferredSize(tamanhoBotoes);
		jbCadastrarLivro.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				UIController.mudarTela(TelaBiblioteca.CADASTRO_LIVROS_UI);
			}
		});
		jbCadastrarLivro.setPreferredSize(tamanhoBotoes);
		jbConsultarLivro.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				UIController.mudarTela(TelaBiblioteca.CONSULTAR_LIVROS_UI);
			}
		});
		jbConsultarLivro.setPreferredSize(tamanhoBotoes);
		jbCadastrarClientes.setPreferredSize(tamanhoBotoes);
		
		jbEmprestimos.setIcon(ImageLoader.createImageIcon("btnEmprestimoLivro145x145.png"));
		jbDevolucoes.setIcon(ImageLoader.createImageIcon("btnDevolucaoLivro145x145.png"));
		jbConsultarClientes.setIcon(ImageLoader.createImageIcon("btnConsultarClientes145x145.png"));
		jbCadastrarClientes.setIcon(ImageLoader.createImageIcon("btnCadastrarClientes145x145.png"));
		jbConsultarLivro.setIcon(ImageLoader.createImageIcon("btnPesquisarLivro145x145.png"));
		jbCadastrarLivro.setIcon(ImageLoader.createImageIcon("btnCadastrarLivro145x145.png"));
		
		
		jpBotoes.add(jbEmprestimos);			
		jpBotoes.add(jbDevolucoes);
		jpBotoes.add(jbConsultarClientes);
		jpBotoes.add(jbCadastrarLivro);
		jpBotoes.add(jbConsultarLivro);
		jpBotoes.add(jbCadastrarClientes);
		
		inicializarMenuCentral();

	}
	
	private void inicializarMenuCentral() {
		
		jbCadastrarClientes.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				UIController.mudarTela(TelaBiblioteca.CADASTRO_CLIENTE_UI);
			}
		});
		
		
	}
	
	private MenuCentralUI instanciaMenu(){
		return this;
	}

}
